#ifndef __PHASE1_FUNC_H__
#define  __PHASE1_FUNC_H__

#include <Lcode/l_main.h>


#define ddebug 0
#define edebug 1
#define Lbw_new_reg(cty) L_new_register_operand (++(L_fn->max_reg_id), \
                                            (cty), L_PTYPE_NULL)
                                                                                
#define Lbw_new_int_reg() L_new_register_operand (++(L_fn->max_reg_id), \
                                           L_CTYPE_INT, L_PTYPE_NULL)

#define Lbw_new_flt_reg() L_new_register_operand (++(L_fn->max_reg_id), \
                                           L_CTYPE_FLOAT, L_PTYPE_NULL)
#define Lbw_new_llong_reg() L_new_register_operand (++(L_fn->max_reg_id), \
                                           L_CTYPE_LLONG, L_PTYPE_NULL)
#define Lbw_new_addr_reg() L_new_register_operand (++(L_fn->max_reg_id), \
                                           L_CTYPE_POINTER, L_PTYPE_NULL)

#define Lbw_new_float_reg() L_new_register_operand (++(L_fn->max_reg_id), \
                                           L_CTYPE_FLOAT, L_PTYPE_NULL)

#define Lbw_CMAC(mac) L_new_macro_operand (BW_MAC ## mac, \
                                              L_CTYPE_LLONG, 0)
#define Lbw_CMAC_F(mac) L_new_macro_operand (BW_MAC ## mac, \
                                              L_CTYPE_DOUBLE, 0)
#define Lbw_MCMAC(mac) L_new_macro_operand (BW_MAC##mac, \
											  L_CTYPE_LLONG,0)
#define Lbw_MCMAC_F(mac) L_new_macro_operand (BW_MAC ## mac, \
											  L_CTYPE_DOUBLE,0)
#define Lbw_MAC_ACF(mac) L_new_macro_operand (BW_MAC_## mac, \
											  L_CTYPE_INT,0)
#define Lbw_MAC_SR(mac) L_new_macro_operand (BW_MAC_## mac, \
											  L_CTYPE_POINTER,0)

extern void L_process_func (L_Func * fn);





#endif /*  __PHASE1_FUNC_H__*/
